There has been proposed a technique (referred to as “a high-speed duplex printing”) for improving a speed of the duplex printing process by printing N sheets (N is a positive integer) on the first side thereof and subsequently printing M sheets (M is an integer equal to or more than 0 and equal to or less than N) on the second sides thereof. For example, for performing duplex printing on 10 pages (5 sheets), an image forming apparatus prints them in the page order of 2 (even page), 4 (even page), 1 (odd page), 6 (even page), 3 (odd page), 8 (even page), 5 (odd page), 10 (even page), 7 (odd page), and 9 (odd page). Furthermore, an image forming apparatus prints them in the page order of 1, 3, 5, 2, 7, 4, 9, 6, 8, and 10.
However, in the above-described duplex printing technique, there have been the following problems. That is, in the duplex printing, in order to prepare for a retry process in the case of a paper jam, the print data for the first side is not deleted until at least the printing on the second side is completed even after the printing on the first side is completed. Therefore, if the printing speed is increased by increasing the number of sheets N to be successively printed on the first side, the amount of memory used is likely to increase. Accordingly, such during high-speed duplex printing, another function may be restricted since the available amount of memory is not sufficient.